<?php

namespace App\Admin\Controllers;

use App\Http\Controllers\Controller;
use Encore\Admin\Controllers\Dashboard;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Layout\Column;
use Encore\Admin\Layout\Content;
use Encore\Admin\Layout\Row;
use Encore\Admin\Grid;
use App\User;

class UserController extends Controller
{
    public function index()
    {
        return Admin::content(function (Content $content) {

            $content->header('用户管理');
            $content->description('描述...');
            $content->breadcrumb(
                ['text' => '首页', 'url' => '/admin'],
                ['text' => '用户管理', 'url' => '/admin/users'],
                ['text' => '编辑用户']
            );

            $grid = Admin::grid(User::class, function(Grid $grid){

                // 第一列显示id字段，并将这一列设置为可排序列
                $grid->id('ID')->sortable();
            
                // 第二列显示name字段，由于title字段名和Grid对象的title方法冲突，所以用Grid的column()方法代替
                $grid->name('用户名');
            
                // 第三列显示mobile字段，通过display($callback)方法设置这一列的显示内容为users表中对应的用户名
                $grid->mobile();
            
                // 第四列显示为describe字段
                $grid->introducer('介绍人')->display(function($introducer){
                    $user = User::find($introducer);
                    return $user?$user->name:'';
                });
            
                // 第五列显示为rate字段
                $grid->avatar('头像')->display(function($avatar){
                    return $avatar?"<img src='$avatar' height=30 />":'';
                });
            
                // 下面为三个时间字段的列显示
                $grid->created_at('注册时间');
            
                // filter($callback)方法用来设置表格的简单搜索框
                $grid->filter(function ($filter) {
            
                    // 设置created_at字段的范围查询
                    $filter->between('created_at', 'Created Time')->datetime();
                });
            });

            $content->body($grid->render());
        });
    }
}
